import axios from "axios";

//获取当前城市消息
export default function getCurrentCity() {
  return new Promise((resolve, reject) => {
    try {
      const currentCityInfo =
        JSON.parse(localStorage.getItem("hkzf-current-city")) || {};
      // 如果本地存储有当前城市的信息 直接返回数据
      if (currentCityInfo.label) {
        resolve(currentCityInfo);
        // 获取到本地存储的城市数据就不执行下面的代码
        return;
      }

      // 没有本地存储数据 就使用定位 获取当前城市信息
      var myCity = new window.BMap.LocalCity();
      var cityName;

      myCity.get(async (result) => {
        cityName = result.name;

        // alert("当前定位城市:" + cityName);
        //发送请求获取当前城市的消息

        // 获取到当前城市再发送请求
        const res = await axios.get("http://localhost:8080/area/info", {
          params: {
            name: cityName,
          },
        });

        //将请求获取的城市信息存储到本地
        localStorage.setItem(
          "hkzf-current-city",
          JSON.stringify(res.data.body)
        );
        //返回获取的当前城市消息
        resolve(res.data.body);
      });
    } catch (e) {
      //返回错误信息
      reject(e);
    }
  });
}
